// #include <stdio.h>
// #include <stdlib.h>
// #include <string.h>
// #include <assert.h>
//
// struct Person
// {
//     char name[20];
//     int age;
//     double score;
// };
// struct  Person p1={"小方",18,100.0};
// //typedef struct Test Test
// //typedef struct Test *PTest
// //typedef struct Test ARR[3]
//
// typedef struct black_red_node
// {
//     int key;
//     int color;
// }RBNODE;
//
//
// //后面不是变量 是类型的别名 怎么看 中间不看
// typedef struct Test
// {
//     char name[20];
//     int age;
// }Test,*PTest,ARRA[3];
//
//
// void test_typedef_struct()
// {
//     struct  Test t1;
//     Test t2;
//     PTest p=NULL;// struct Test *p
//
//     struct Test arr[3];
//     ARRA arr1; //struct Test arr1[3]
// }
//
// //特殊结构体定义 没有名字结构体
// //只有一个变量
// struct
// {
//     int num;
//     int key;
// }singleTon;
//
// //可以创建多个变量
// typedef struct
// {
//     int num;
//     int key;
// }Type;
//
//
// int main()
// {
//     //初始化方式 数据的类型要和定义的类型一致
//     struct Person p1={"小方",18,100.0};
//     //age score 默认为0
//     struct Person p2={"小明"};
//     printf("%s\n",p1.name);
//     printf("%d\n",p1.age);
//     printf("%lf\n",p1.score);
//     printf("%s\n",p2.name);
//     printf("%d\n",p2.age);
//     printf("%lf\n",p2.score);
//
//     //.的形式
//     struct  Person p3={.name="小明",.age=18,.score=100.0};
//     printf("%s\n",p3.name);
//     printf("%d\n",p3.age);
//     printf("%lf\n",p3.score);
//
//     //结构体变量的创建
//
//      struct Data
//     {
//         int year;
//     };
//
//     struct Person arr[3];
//     for(int i=0;i<3;i++)
//     {
//         struct Person p={.name="小明",.age=18,.score=100.0};
//         arr[i]=p;
//     }
//
//     singleTon.num=100;
//     printf("%d\n",singleTon.num);
//
//
//
//     return 0;
// }